home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection Student Program / ADC Tools Sampler CD Disk 3 1999.iso / Metrowerks CodeWarrior / Java Support / Java_Source / IFC_112 / netscape / application / FoundationDialog.java < prev    next >
Encoding:
Text File  |  1999-05-28  |  2.1 KB  |  77 lines  |  [TEXT/CWIE]

  1. // FoundationDialog.java
  2. // By Ned Etcode
  3. // Copyright 1996, 1997 Netscape Communications Corp.  All rights reserved.
  4.  
  5. package netscape.application;
  6.  
  7. import java.awt.Dialog;
  8. import java.awt.Frame;
  9. import java.awt.Graphics;
  10. import java.awt.Rectangle;
  11. import java.awt.Insets;
  12. import netscape.util.*;
  13.  
  14. /** FoundationDialog is...
  15.   * @private
  16.   */
  17. public class FoundationDialog extends Dialog {
  18.     ExternalWindow externalWindow;
  19.  
  20.     public FoundationDialog(Frame parent, boolean modal) {
  21.         super(parent,modal);
  22.     }
  23.  
  24.     public FoundationDialog(Frame parent, String title, boolean modal) {
  25.         super(parent,title,modal);
  26.     }
  27.  
  28.     public boolean handleEvent(java.awt.Event event) {
  29.         Application app = Application.application();
  30.         if (event.id == java.awt.Event.WINDOW_DESTROY) {
  31.             if( app != null && app.eventLoop.shouldProcessSynchronously())
  32.                 externalWindow.hide();
  33.             else {
  34.                 /** Cannot wait. This will block the AWT thread and may cause
  35.                  * a dead lock if the window owner needs to show a alert
  36.                  */
  37.                 externalWindow.rootView().application().performCommandLater(
  38.                     externalWindow, ExternalWindow.HIDE, null, false);
  39.             }
  40.             return true;
  41.         } else {
  42.             return super.handleEvent(event);
  43.         }
  44.     }
  45.  
  46.     public ExternalWindow externalWindow() {
  47.         return externalWindow;
  48.     }
  49.  
  50.     void setExternalWindow(ExternalWindow wFrame) {
  51.         externalWindow = wFrame;
  52.     }
  53.  
  54.     public void layout() {
  55.         java.awt.Dimension size = size();
  56.         java.awt.Insets insets = insets();
  57.  
  58.         int x = insets.left, y = insets.top,
  59.             w = size.width - (insets.left + insets.right),
  60.             h = size.height - (insets.top + insets.bottom);
  61.  
  62.         if (w > 0 && h > 0) {
  63.             externalWindow.panel().reshape(x , y , w , h );
  64.         }
  65.     }
  66.  
  67.     public java.awt.Dimension minimumSize() {
  68.         if (externalWindow != null) {
  69.             Size size = externalWindow.minSize();
  70.             return new java.awt.Dimension(size.width, size.height);
  71.         } else
  72.             return null;
  73.     }
  74.  
  75. }
  76.  
  77.